Imports System.Configuration.Provider
Public MustInherit Class CategoryProvider : Inherits ProviderBase
    Public MustOverride Function GetCategoryGroups() As Generic.List(Of DataTypes.CategoryGroupItem)

    Public MustOverride Function GetCategoryGroups(ByVal SortColumn As String, ByVal SortOrder As String) As Generic.List(Of DataTypes.CategoryGroupItem)

    Public MustOverride Function GetCategoryGroups(ByVal SearchColumn As String, ByVal SearchOperator As String, ByVal SearchCriteria As String) As Generic.List(Of DataTypes.CategoryGroupItem)

    Public MustOverride Sub AddCategoryGroup(ByVal NewCateogryGroup As DataTypes.CategoryGroupItem, ByVal CurrentUser As String)

    Public MustOverride Sub AddCategoryGroup(ByVal CategoryGroupDescription As String, ByVal CurrentUser As String)

    Public MustOverride Sub EditCategoryGroup(ByVal CategoryGroupId As String, ByVal CategoryGroupItem As DataTypes.CategoryGroupItem, ByVal CurrentUser As String)

    Public MustOverride Sub EditCategoryGroup(ByVal CategoryGroupId As String, ByVal CategoryGroupDescription As String, ByVal CurrentUser As String)

    Public MustOverride Sub DeleteCategoryGroup(ByVal CategoryGroupId As String, ByVal CurrentUser As String)

    Public MustOverride Function GetCategories() As Generic.List(Of DataTypes.CategoryItem)

    Public MustOverride Function GetCategoriesById(ByVal CategoryGroupId As String) As Generic.List(Of DataTypes.CategoryItem)

    Public MustOverride Function GetCategoriesByDesc(ByVal CategoryGroupDescription As String) As Generic.List(Of DataTypes.CategoryItem)

    Public MustOverride Function GetCategories(ByVal SortColumn As String, ByVal SortOrder As String) As Generic.List(Of DataTypes.CategoryItem)

    Public MustOverride Function GetCateogries(ByVal SearchColumn As String, ByVal SearchOperator As String, ByVal SearchCriteria As String) As Generic.List(Of DataTypes.CategoryItem)

    Public MustOverride Sub AddCategory(ByVal NewCategory As DataTypes.CategoryItem, ByVal CurrentUser As String)

    Public MustOverride Sub AddCategory(ByVal CategoryGroupId As String, ByVal CategoryShortDescription As String, _
    ByVal CategoryLongDescription As String, ByVal SortOrder As Integer, ByVal ParentCategoryId As String, ByVal CurrentUser As String)

    Public MustOverride Sub EditCategory(ByVal CategoryId As String, ByVal CategoryItem As DataTypes.CategoryItem, ByVal CurrentUser As String)

    Public MustOverride Sub EditCategory(ByVal CategoryId As String, ByVal CategoryGroupId As String, ByVal CategoryShortDescription As String, _
    ByVal CategoryLongDescription As String, ByVal SortOrder As Integer, ByVal ParentCategoryId As String, ByVal CurrentUser As String)

    Public MustOverride Sub DeleteCategory(ByVal CategoryId As String, ByVal CurrentUser As String)
End Class
